Client Health

В System Center 2012 Configuration Manager разработали механизм оценки здоровья клиента и возврата его в рабочее состояние, если клиент «поломался». Про оценку состояния клиента я уже немного писал. В этом посте я немного расскажу о «внутренностях» процесса.

Раз в час проверяется, запущено ли само задание «Configuration Manager Health Evaluation», вызывающее ccmeval.exe.

CcmEvalTask.log:

Successfully check CcmEval running state CcmEvalTask 25.11.2011 11:39:45 27436 (0x6B2C)
Successfully check CcmEval running state CcmEvalTask 25.11.2011 12:40:54 32976 (0x80D0)
Successfully check CcmEval running state CcmEvalTask 25.11.2011 13:39:51 33684 (0x8394)

ccmeval.exe из файла CcmEval.xml, который находится там же в папке с клиентом, вычитывает параметры, по которым будет проверяться состояние здоровья клиента. Здесь, например, проверяется тип старта сервиса клиента и, если служба стартует не автоматически, то тип старта будет изменён на Automatic:

<HealthCheck Description=»Verify/Remediate SMS Agent Host service startup type.» ID=»13F46523-5B82-417d-A363-A644E80CAD76″ Type=»Services» DependsOn=»8883C683-04C8-4228-BB76-2EDD666BA781″>
<Applicability Platform=»ALL» OS=»ALL» ClientVersion=»ALL»/>
<PARAM Order=»1″ Description=»Service Check»>
ServiceStartupType
</PARAM>
<PARAM Order=»2″ Description=»Service Name»>
CcmExec
</PARAM>
<PARAM Order=»3″ Description=»Expected Service Startup State»>
Automatic
</PARAM>
<Remediate>
<PARAM Order=»1″ Description=»Services Remediation»>
ServiceStartupType
</PARAM>
<PARAM Order=»2″ Description=»Service Name»>
CcmExec
</PARAM>
<PARAM Order=»3″ Description=»Desired Service Startup State»>
Automatic
</PARAM>
</Remediate>
</HealthCheck>

Это тест на чтение и запись репозитория WMI и, если добавить запись в репозиторий не получится, он будет пересобран, а клиент SCCM будет переустановлен:

<HealthCheck Description=»WMI Repository Read/Write Test.» ID=»14E6774A-1795-4E09-B17D-B6F36A124205″ Type=»WMI»>
<Applicability Platform=»ALL» OS=»ALL» ClientVersion=»ALL»/>
<PARAM Order=»1″ Description=»Repository Rread/Write Test»>
RepositoryReadWriteTest
</PARAM>
<PARAM Order=»2″ Description=»Check Rules XML»>
<![CDATA[
<WmiChecks version=»1.0″>
<WmiCheck feature=»General»>
<Root type=»Namespace» path=»root\cimv2″>
<Child type=»Namespace» path=»ccm2″>
<ValidationAction type=»Create» order=»Pre»></ValidationAction>
<Child type=»Class» name=»SMS_Client2″>
<Property name=»ID» type=»DWORD» key=»true»></Property>
<Property name=»Description» type=»STRING»></Property>
<ValidationAction type=»Create» order=»Pre»></ValidationAction>
<Child type=»Instance»>
<Property name=»ID» type=»DWORD» value=»32″></Property>
<Property name=»Description» type=»STRING» value=»This is a test»></Property>
<ValidationAction type=»Create» order=»Pre» count=»10″></ValidationAction>
<ValidationAction type=»Delete» order=»Post»></ValidationAction>
</Child>
<ValidationAction type=»Delete» order=»Post»></ValidationAction>
</Child>
<ValidationAction type=»Delete» order=»Post»></ValidationAction>
</Child>
</Root>
</WmiCheck>
</WmiChecks>
]]>
</PARAM>
<Remediate>
<PARAM Order=»1″ Description=»Reset WMI Repository and Reinstall Client»>
RepositoryResetAndInstall
</PARAM>
</Remediate>
</HealthCheck>

Проверяется 20 параметров: состояние и тип запуска SMS Agent Host, состояние репозитория WMI, службы WMI, Windows Update и BITS, и т.д. После прохождения оценки состояния формируется отчёт CcmEvalReport.xml и отправляется на точку управления.

CcmEval.log:

Loading manifest file: C:\Program Files\SMS_CCM\CcmEval.xml
Successfully loaded ccmeval manifest file.
Begin evaluating client health rules.
Successfully retrieved all client health checks.
Evaluating health check rule {4AB7D77D-3BB0-4EAB-BEFD-7C0F7DA10296} : Verify WMI service exists.
Evaluating health check rule {518C0699-03F8-4F38-85C4-4D319EAEFC05} : Verify/Remediate WMI service startup type.
Evaluating health check rule {7F4B6E15-2221-455B-9615-93C379E470D5} : Verify/Remediate WMI service status.
Evaluating health check rule {A81778B5-9A1E-4A52-9C6E-6939CEFAA118} : WMI Repository Integrity Test.
Evaluating health check rule {14E6774A-1795-4E09-B17D-B6F36A124205} : WMI Repository Read/Write Test.
Evaluating health check rule {5CC6C949-5001-4765-84B4-DD4FDC1E6940} : Verify BITS exists.
Evaluating health check rule {C6E29CF5-F9B2-450B-AE61-C4B256A75023} : Verify/Remediate BITS startup type.
Evaluating health check rule {CF4EFD8F-9A1E-4A89-BB35-7021D51767DB} : Verify/Remediate client and client prerequisites installation.
Evaluating health check rule {8883C683-04C8-4228-BB76-2EDD666BA781} : Verify SMS Agent Host service exists.
Evaluating health check rule {13F46523-5B82-417d-A363-A644E80CAD76} : Verify/Remediate SMS Agent Host service startup type.
Evaluating health check rule {70BECB51-44A1-4b46-8A23-6EA3D345B677} : Verify/Remediate SMS Agent Host service status.
Evaluating health check rule {D9D0245D-0617-4C2F-8837-84A397AC5B22} : Verify/Remediate Lantern service startup type.
Evaluating health check rule {09886543-BE8B-431F-BC00-7D917632E22C} : Verify/Remediate Antimalware service startup type.
Evaluating health check rule {5B50566C-363E-4F1C-8A7D-6F2D2A51B142} : Verify/Remediate Antimalware service status.
Evaluating health check rule {6BC824B4-BD8C-4779-BB10-ABDBCD5AFAEB} : Verify/Remediate Network Inspection service startup type.
Evaluating health check rule {D6CB32EA-423D-44CB-9C58-97CE55D2148E} : Verify/Remediate Windows Update service startup type.
Evaluating health check rule {D3E01C5F-CE42-4022-B51D-680ADFA1CCD4} : Verify/Remediate Windows Update service status.
Evaluating health check rule {9040BA8C-580D-4FCA-8846-BBD5F5BB1597} : Verify/Remediate Configuration Manager Remote Control service startup type.
Evaluating health check rule {9DCD49EF-E021-46FF-A777-49210B558527} : Verify/Remediate Configuration Manager Remote Control service status.
Evaluating health check rule {7B9F8FF6-EDF7-42CA-A67F-073A2E161C19} : Verify/Remediate SQL CE database is healthy.
Successfully evaluated all client health rules.

А это кусок отчёта. В ResultDetail виден результат проверки компонента — Passed:

И затем в консоли можно смотреть результаты проверки. Клиент SCCM у меня установлен на 3 из 17 компьютеров и, как видно, с этими клиентами всё в порядке:

Для запрета автоматической переустановки клиента нужно значение параметра NotifyOnly изменить на TRUE:

Leave a Reply